package me.sealer.ssm.service;

import me.sealer.ssm.model.Role;
import me.sealer.ssm.page.PageResult;

import java.util.List;

/**
 * @author sealer
 * @date 2018/05/11.
 */
public interface RoleService {
    /**
     * 查询所有角色
     *
     * @return 角色列表
     */
    List<Role> queryAllRoles();

    /**
     * 根据角色名查询角色
     *
     * @param roleName 角色名
     * @return 角色
     */
    Role queryRoleByRoleName(String roleName);

    /**
     * 分页查询角色列表
     *
     * @param roleName 角色名
     * @param pageNo   第几页
     * @param pageSize 每页记录条数
     * @return 角色分页数据
     */
    PageResult<Role> queryRolesPage(String roleName, int pageNo, int pageSize);

    /**
     * 新增角色
     *
     * @param name        角色名
     * @param description 角色描述
     * @param permissions 角色权限列表
     * @param menus       角色菜单列表
     */
    void newRole(String name, String description, List<Integer> permissions, List<Integer> menus);

    /**
     * 删除角色
     *
     * @param id   角色id
     * @param name 角色名称
     */
    void deleteRole(Integer id, String name);
}
